package moltencore.game;

import spark.math.Vector2;
import moltencore.game.bubble.Bubble;
import moltencore.game.Player;

import java.util.Collection;
import java.util.LinkedList;

public interface IGameEventListener {
	public void playerJoinedGame(Player player);
	public void playerJoinedTeam(Player player, int teamIndex);
	public void gameReadyToStart(Game game);
	public void newCannonTarget(long cannonOwnerClientId, Vector2 target);
	public void bubbleFixated(Bubble bubble, long fieldId);
	public void bubblePopped(Bubble bubble, long fieldId);
	public void bubbleNext(Bubble bubble, long fieldId, long clientId);
	public void gameStarting(Game game, int teamSize);
	public void gameEnded(Collection<Field> winners, Collection<Field> losers);
	public void bubbleFired(Bubble bubble, long fieldId);
	public void rowPushed(long fieldId, LinkedList<Bubble> row, Vector2 direction);
	public void ceilingPushed(long fieldId, Vector2 direction);
	public void newScore(long fieldId, int score);
	public void timeLeft(float secondsLeft);
}
